package delphorm.web.validateur;



import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import delphorm.entite.personne.DroitQuestionnaire;
import delphorm.service.personne.IGroupeCollectif;



public class GererDroitsGroupesQuestionnaireValidateur implements Validator{
	IGroupeCollectif serviceGroupeCollectif;
	
	public boolean supports(Class classe) {
		
		return classe.isAssignableFrom(DroitQuestionnaire.class);
	}

	public void validate(Object obj, Errors errors) {
		DroitQuestionnaire dq = (DroitQuestionnaire)obj;
		
		//vérifie le groupe
		if(dq.getGroupe().getNom() == null || dq.getGroupe().getNom().trim().equals(""))
			errors.rejectValue("groupe.nom","GererDroitsGroupesQuestionnaire.groupe.nom.obligatoire");
		//vérifie si le groupe existe
		else if(!serviceGroupeCollectif.existeParNom(dq.getGroupe().getNom()))
			errors.rejectValue("groupe.nom","GererDroitsGroupesQuestionnaire.groupe.nom.existepas");
		
		if(dq.getQuestionnaire()==null)
		{
			errors.rejectValue("questionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getCreerInstanceQuestionnaire()==null)
		{
			errors.rejectValue("creerInstanceQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getModifierQuestionnaire()==null)
		{
			errors.rejectValue("modifierQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getModifierSonInstanceQuestionnaire()==null)
		{
			errors.rejectValue("modifierSonInstanceQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getModifierToutesInstancesQuestionnaire()==null)
		{
			errors.rejectValue("modifierToutesInstancesQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getSupprimerQuestionnaire()==null)
		{
			errors.rejectValue("supprimerQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getSupprimerSonInstanceQuestionnaire()==null)
		{
			errors.rejectValue("supprimerSonInstanceQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getSupprimerToutesInstancesQuestionnaire()==null)
		{
			errors.rejectValue("supprimerToutesInstancesQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getValiderSonInstanceQuestionnaire()==null)
		{
			errors.rejectValue("validerSonInstanceQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getValiderToutesInstancesQuestionnaire()==null)
		{
			errors.rejectValue("creerToutesInstancesQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getVoirQuestionnaire()==null)
		{
			errors.rejectValue("voirQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getVoirSonInstanceQuestionnaire()==null)
		{
			errors.rejectValue("voirSonInstanceQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
		if(dq.getVoirToutesInstancesQuestionnaire()==null)
		{
			errors.rejectValue("voirToutesInstancesQuestionnaire","GererDroitsGroupesQuestionnaire.obligatoire");
		}
	}

	public IGroupeCollectif getServiceGroupeCollectif() {
		return serviceGroupeCollectif;
	}

	public void setServiceGroupeCollectif(IGroupeCollectif serviceGroupeCollectif) {
		this.serviceGroupeCollectif = serviceGroupeCollectif;
	}


}
